package eraikikon;

import java.sql.*;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Vector;

public class DBKud {
	private Connection konexioa;

	private Statement sql1=null;

	private Statement sql2=null;

	private Statement sql3=null;

	private Statement sql4=null;

	private Statement sql5=null;
	private Statement sql6=null;
	private Statement sql7=null;
	private Statement sql8=null;
	private Statement sql9=null;
	private Statement sql10=null;
	private Statement sql11=null;
	private Statement sql12=null;
	private Statement sql13=null;
	private int auto=0;
	public DBKud() {
		try {
			Class.forName("com.mysql.jdbc.Driver");
			konexioa = DriverManager
					.getConnection("jdbc:mysql://localhost/eraikikon2",
							"ikasle01", "ikasle01");
		} catch (Exception e) {
			System.out.println("Errore bat gertatu da (0):" + e.toString());
		}
	}

	public Txartela execSQL1(Integer txartelId) {
		Integer eId = null;
		Integer tId = null;
		Calendar dataDesgaitu = null;
		Calendar dataGaitu = null;
		ResultSet r = null;
		try {
			sql1 = konexioa.createStatement();
			r = sql1
					.executeQuery("SELECT gaituData,desgaituData,txartelId,erabiltzaileId FROM txartela WHERE txartelId="
							+ txartelId);
			while (r.next()) {
				Date gData = r.getDate("gaituData");
				Time gTime = r.getTime("gaituData");
				dataGaitu = new GregorianCalendar(gData.getYear() + 1900, gData
						.getMonth() + 1, gData.getDate(), gTime.getHours(),
						gTime.getMinutes(), gTime.getSeconds());
				Date desData = r.getDate("desgaituData");
				Time desTime = r.getTime("desgaituData");
				dataDesgaitu = new GregorianCalendar(desData.getYear() + 1900,
						desData.getMonth() + 1, desData.getDate(), desTime
								.getHours(), desTime.getMinutes(), desTime
								.getSeconds());
				tId = (Integer) r.getInt("txartelID");
				eId = (Integer) r.getInt("erabiltzaileID");

			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		Txartela txartel = new Txartela(tId, dataGaitu, dataDesgaitu, eId);
		return txartel;
	}

	public Erabiltzaile execSQL2(Integer erabId) {
		Integer erabiltzaileID = null;
		Integer txartelID = null;
		String izena = null;
		String pasahitza = null;
		Integer profilID = null;
		Boolean barruan = false;
		ResultSet r1 = null;
		try {
			sql2 = konexioa.createStatement();

			r1 = sql2
					.executeQuery("SELECT erabiltzaileID,izena,pasahitza,txartelID,profilID,barruan FROM erabiltzailea WHERE txartelId="
							+ erabId);
			while (r1.next()) {
				erabiltzaileID = r1.getInt("erabiltzaileID");
				txartelID = r1.getInt("txartelID");
				izena = r1.getString("izena");
				pasahitza = r1.getString("pasahitza");
				profilID = r1.getInt("profilID");

			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		Erabiltzaile erabiltzaile = new Erabiltzaile(erabiltzaileID, izena,
				pasahitza, profilID, txartelID);
		return erabiltzaile;
	}

	public Itis execSQL3(Integer txId) {
		Integer erabiltzaileID = null;
		Integer guneaID = null;
		ResultSet r3 = null;
		try {
			sql3 = konexioa.createStatement();

			r3 = sql3
					.executeQuery("SELECT guneaID,erabiltzaileID FROM itis NATURAL JOIN erabiltzailea WHERE txartelID="
							+ txId);	
			while (r3.next()) {
				guneaID = r3.getInt("guneaID");
				erabiltzaileID = r3.getInt("erabiltzaileID");
				

			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		Itis eraikina = new Itis(erabiltzaileID, guneaID);
		return eraikina;
	}//
	public Vector<TxartelIrakurgailua> execSQL4(Integer guneaId) {
		Integer helburuGuneaID = null;
		Integer txartelIrakurgailuID = null;
		Integer guneaID;
		Integer ateaID;
		Vector<TxartelIrakurgailua> txartelIrakLista=new Vector<TxartelIrakurgailua>();
		ResultSet r4 = null;
		try {
			sql4 = konexioa.createStatement();
			r4 = sql4
					.executeQuery("SELECT txartelIrakurgailuID,helburuGuneaID,ateaID,guneaID FROM txartelIrakurgailua WHERE guneaID="+guneaId);
			while (r4.next()) {
				txartelIrakurgailuID=r4.getInt("txartelIrakurgailuID");
				helburuGuneaID=r4.getInt("helburuGuneaID");
				guneaID=r4.getInt("guneaID");
				ateaID=r4.getInt("ateaID");
				TxartelIrakurgailua txI=new TxartelIrakurgailua(txartelIrakurgailuID,ateaID,guneaID,helburuGuneaID);
				txartelIrakLista.addElement(txI);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return txartelIrakLista;
	}
	public Ordutegia execSQL5(Integer guneaId,Integer profilId) {
		Time hasieraOrdua = null;
		Time bukaeraOrdua=null;
		Boolean jaiEguna = false;
		Integer guneaID=null;
		Integer profilID=null;
		ResultSet r5 = null;
		try {
			sql5 = konexioa.createStatement();
			r5 = sql5
					.executeQuery("SELECT guneaID,profilID,jaiEguna,hasieraOrdua,bukaeraOrdua FROM ordutegia WHERE guneaID="+guneaId+" and profilID="+profilId);
			while (r5.next()) {
				jaiEguna=r5.getBoolean("jaiEguna");
				profilID=r5.getInt("profilID");
				guneaID=r5.getInt("guneaID");
				hasieraOrdua=r5.getTime("hasieraOrdua");
				bukaeraOrdua=r5.getTime("bukaeraOrdua");
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		Ordutegia ordutegia=new Ordutegia( hasieraOrdua,bukaeraOrdua,jaiEguna,guneaID,profilID);
		return ordutegia;
	}	
	public void execSQL6(Integer ateaId){
		
		try{
			sql6=konexioa.createStatement();
			int updateEmaitza=sql6.executeUpdate("UPDATE atea SET egoera='o' where ateaID="+ateaId);
	
		}
		catch(SQLException e){
			e.printStackTrace();
		}
	}
public void execSQL7(String egunaOrdua,char baimendua,String ukapenArrazoia,Integer txartelId,Integer txartelIrakId){
		
		try{
			sql7=konexioa.createStatement();
			int updateEmaitza=sql7.executeUpdate("insert into sarbideEskaera(data,baimenduta,ukapenarenArrazoia,txartelID,txartelIrakurgailuID) values ('"+egunaOrdua+"','"+baimendua+"','"+ukapenArrazoia+"',"+txartelId+","+txartelIrakId+")");
		}
		catch(SQLException e){
			e.printStackTrace();
		}
	}
public void execSQL8(Integer erabId,Integer guneaId){
	try{
		sql8=konexioa.createStatement();
		int updateEmaitza=sql8.executeUpdate("update itis set guneaID="+guneaId+" where erabiltzaileID="+erabId);
		System.out.print("kokagunea eguneratu da");
	}
	catch(SQLException e){
		e.printStackTrace();
	}
}
public void execSQL9(String data,String larritasuna,String mota,String deskribapena,Integer txartelID,Integer ateID,Integer txartelIrakurgailuID,char gaituta){	
	try{
		sql9=konexioa.createStatement();
		int i= sql9.executeUpdate("insert into intzidentzia  (data,larritasuna,mota,deskribapena,txartelID,ateID,txartelIrakurgailuID,gaituta)values ('"+data+"','"+larritasuna+"','"+mota+"','"+deskribapena+"',"+txartelID+","+ateID+","+txartelIrakurgailuID+",'"+gaituta+"')");
	}
	catch(SQLException e){
		e.printStackTrace();
	}
}
public String execSQL10(String izena,String pasahitza) {
	String mota = null;
	
	ResultSet r10 = null;
	try {
		sql10 = konexioa.createStatement();
		r10 = sql10
				.executeQuery("SELECT mota FROM erabiltzailea NATURAL JOIN profila WHERE izena='"+izena+"'  and pasahitza='"+pasahitza+"'");
		while (r10.next()) {
			mota = r10.getString("mota");
		}
	} catch (SQLException e) {
		e.printStackTrace();
	}
	
	return mota;
}	
public Integer execSQL11() {
	Integer zenbat = 0;
	
	ResultSet r11 = null;
	try {
		sql11 = konexioa.createStatement();
		r11 = sql11
				.executeQuery("SELECT Count(*) AS Zenbat FROM itis WHERE guneaID<>7");
		while (r11.next()) {
			zenbat = (Integer)r11.getInt("Zenbat");
			System.out.println(zenbat);
		}
	} catch (SQLException e) {
		e.printStackTrace();
	}
	
	return zenbat;
}	
public void execSQL12() {
	Integer i = null;
	
		try {
		sql12 = konexioa.createStatement();
		i = sql12
				.executeUpdate("UPDATE atea SET egoera='o'");
			} catch (SQLException e){ 
		e.printStackTrace();
			}
}
public void execSQL13() {
	Integer i = null;
	
		try {
		sql13 = konexioa.createStatement();
		i = sql13
				.executeUpdate("UPDATE atea SET egoera='c'");
			} catch (SQLException e){ 
		e.printStackTrace();
			}
}	
}
